#ifndef __FTPSERVER_H__
#define __FTPSERVER_H__

#include <stdio.h>
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <pthread.h>
#include <signal.h>
#include <sys/wait.h>
#include <dirent.h>
#include <errno.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "protocol.h"
/*
init_tcpserver:初始化一个TCP服务器
ip:服务器本身的ip地址字符串
port:服务器的端口号
返回值:
    成功返回创建好的服务器的套接字描述符
    失败返回-1
*/
int init_tcpserver(const char *ip, short port);

/*
handle_connection:处理当前客户端的所有请求和回复
connfd:当前客户端的套接字描述符
*/
void handle_connection(int connfd);

/*
读取客户端的数据失败的时候,关闭连接
*/
void handle_read_error(int connfd);

//回复客户端的ls请求
void resp_ls(int connfd);

//回复客户端的请求
void resp_get(int connfd,const char *filename);

void resp_put(int connfd, const char *filename, int filesize);

#endif